package net.xdclass.product.service;

import net.xdclass.common.JsonData;
import net.xdclass.common.message.MessageInfo;
import net.xdclass.product.model.ProductDO;
import com.baomidou.mybatisplus.extension.service.IService;
import net.xdclass.product.model.vo.ProductVO;
import net.xdclass.product.request.LockProductRequest;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yaya
 * @since 2023-12-13
 */
public interface ProductService {

    /**
     * 分页查询商品列表
     * @param page
     * @param size
     * @return
     */
    JsonData page(int page, int size);

    /**
     * 查询商品详情
     * @param productId
     * @return
     */
    ProductVO selectProductById(Long productId);

    /**
     * ids 批量查询商品
     * @param productIds
     * @return
     */
    List<ProductVO> selectProductByIds(List<Long> productIds);

    /**
     * 锁定商品库存
     * @param request
     * @return
     */
    JsonData lockProduct(LockProductRequest request);

    /**
     * 释放商品库存
     * @param messageInfo
     * @return
     */
    boolean releaseProductStock(MessageInfo messageInfo);

}
